1. The Field of the Invention
The present invention relates to control or object behavior within a visual user interface development tool. More particularly, the present invention relates to methods, systems, and computer program products for centrally managing user interface state information for the visual user interface development tool such that behavior for one or more user interface components or the visual user interface development tool itself may be defined dynamically at development time.
2. Background and Related Art
A visual user interface development tool allows a user to define the visual appearance of a user interface object and then generate a source code representation of the user interface object that can be compiled and included within a program for run-time execution. At design time, there is often a need to change how a user interface component or object interacts or behaves with the user/developer. One way development tools account for changes is to associate a designer with each component. The designer is responsible for controlling how the component behaves in response to mouse and keyboard messages, which properties can be set, and how the component is rendered at design or development time.
Often, due to parent-child relationships, some designers need to change or completely control the behavior of their children. With a complex development time scenario, these parent-child relationships eventually lead to a battle over the control of messages and component rendering. Further problems arise when trying to inject additional or new behavior-altering designers into the development tool. However, within a conventional development tool, there is no clear way to ensure that new behavior changes will: act appropriately, work along side other user interface modifiers, render correctly, or be removed cleanly without interrupting the development tool, visually or otherwise.
A significant part of the problem is architectural in nature. For traditional visual user interface development tools, a desired behavior is identified and executed through a large number of global flags which are distributed throughout the development tool. Available design time behaviors (such as, for example, dragging an object, resizing an object, selecting an object, etc.) are hardcoded within a single closed implementation. For example, conventional behavior implementations may include numerous if-then-else type tests of various global flag combinations to identify the code to be executed for a behavior of interest. Because the code and flags are distributed throughout the development tool, it is easy to overlook some of the implications of adding or modifying component behavior. As a result, the code related to design time behavior tends to be brittle, making it difficult for developers of the visual user interface development tool to introduce new behavior at any time, and making it all but impossible for third-party component developers to introduce new behaviors at design time.
Therefore, methods, systems, and computer program products for centrally managing behaviors that are defined at development time for a component within a visual user interface development tool or for the visual user interface development tool itself, are desired.